home *** CD-ROM | disk | FTP | other *** search
/ Macworld Expo - Develope…Central & Net Innovations / Developer Central and Net Innovators (MacWorld Expo) (January 1999).iso / Developer Central / Metrowerks CodeWarrior / CodeWarrior Pro 4 Release Notes / Libraries Notes / MSL Release Notes / MSL 2.2 Release Notes (Pro2) next >
Encoding:
Text File  |  1997-10-16  |  16.3 KB  |  510 lines  |  [TEXT/CWIE]

  1. ========================================================================
  2. Metrowerks MSL Version 2.2 Release Notes 
  3. ========================================================================
  4.  
  5. Version: Metrowerks CodeWarrior Pro 2
  6. Date:    October 15, 1997
  7. Author:  Vicki Scott, Michael Marcotty, Matt Fassiotto, Ron Liechty  
  8. ========================================================================
  9.  
  10.  
  11.  
  12. ========================================================================
  13. New Features in This Version
  14. ========================================================================
  15.  
  16. *  Improved math functions:  
  17.       -  Fixed many bugs in math.h   
  18.       -  Complex library was completely rewritten for improved  
  19.             functionality and correctness on all platforms  
  20.       -  Partial implementation of C9X (fenv.h) fpu interface on x86 
  21.             feset/getround, fetest/clearexcept, feset/getenv  
  22.       -  scalb, logb, round, rint are new functions on x86  
  23.       -  Added macros: HUGE_VALF, NAN, INFINITY, and HUGE_VALL on all 
  24.             platforms         
  25.  
  26. *  A windows console application now stops before exiting so that 
  27.    output can be seen. See notes below on how to turn this feature 
  28.    off.     
  29.  
  30. *  Multi-target project files to build all variations of the libraries 
  31.    for all platforms.  See notes below for more information on these 
  32.    new multi-target project files.     
  33.  
  34. *  Support for default template arguments and explicit keyword in the 
  35.    C++ library functions.  
  36.  
  37. *  Removed the need to include ansi_prefix files in the project file  
  38.    preferences.  The ansi_prefix file is now included directly in the 
  39.    headers that need them. 
  40.    
  41. *  Operator new now throws an exception in the runtime libraries.   
  42.  
  43. *  mathlib.cpp is now obsolete and was removed from all project files.  
  44.    If you have projects that include this, it would be wise to remove 
  45.    it from those projects. 
  46.    
  47. *  fenv.h is now a common header in MSL C/MSL Common/Public Includes.  
  48.  
  49. *  float.mac.c and float.win32.c have been replaced by a common file   
  50.    float.c, in MSL C/MSL Common/Source.  The two architecture specific 
  51.    files should no longer be included in MSL.  All MSL C projects have  
  52.    been updated to reflect this change.  If you have projects that 
  53.    include these two files, it would be wise to remove them from your  
  54.    projects.  
  55.    
  56. *  MSL no longer uses the header file fp.h.  On the Mac, math.h is 
  57.    used instead.  The fp.h header can still be used by Mac projects, 
  58.    which will supersede the math.h usage, but may conflict with some 
  59.    prototypes in math.h.   
  60.    
  61. *  xglob.c and xscalb.c have been removed from all versions of win32 
  62.    MSL C.  These functions have been integrated into the new fpce.obj  
  63.    file.  In addition, the functions hypot, rint, isfinite, and isnan 
  64.    have also been included in the fpce.obj file. 
  65.    
  66. *  On win32, the API finite has been removed from math.obj and replaced 
  67.    with the standard macro isfinite.  Any code that called the API 
  68.    finite must now use isfinite instead.  
  69.    
  70. *  long long support now implemented (__MSL_LONGLONG_SUPPORT__ in 
  71.    ansi_parms.h) in C and C++ libraries.  Increases size of library 
  72.    by 10K when enabled.
  73.  
  74.  
  75. ========================================================================
  76. Bugs Fixed in This Version
  77. ========================================================================
  78.  
  79. *  memmove and memcpy for 68K are now seen in the 68K    
  80.  
  81. *  valarry_longdouble.h fixed a bug in the code uncovered by the new 
  82.    compiler.  Pseudo constructors are no longer allowed     
  83.    Examples:  
  84.      Old:  fill_n(_ptr, _len, longdouble());  
  85.      New:  fill_n(_ptr, _len, 0.0);  
  86.      Old:  long double max_val = long double();   
  87.      New:  long double max_val = 0.0;   
  88.      Old:  return(long double());   
  89.      New:  return(0.0);   
  90.  
  91. *  The "#pragma once on" in the ansi_prefix.{mac,win32}.h files and in  
  92.    the MSL.pch++ file has been commented out.  While switching this 
  93.    pragma on can improve compilation speed, it may cause problems with 
  94.    the use of assert.h, which generally depends on being included more 
  95.    than once during the compilation. 
  96.    
  97. *  ctype.c and ctype.h now include the extended character set on Mac; 
  98.    In addition, they fixed a bug with toupper and tolower functions, 
  99.    which did not handle EOF correctly. 
  100.  
  101. *  MW00019  
  102.    Fixed bug with leap year calculation for day number for March 1996   
  103.    
  104. *  MW00172 
  105.    MW00203 
  106.    MW01294  
  107.    operator new now throws exception 
  108.    
  109. *  MW00196 
  110.    MW00782 
  111.    Fixed  __fileno link error on win32 
  112.  
  113. *  MW00200 
  114.    MW00851 
  115.    vector<T>::at now correctly throws out of range error     
  116.    
  117. *  MW00203 
  118.    MW00172 
  119.    MW01294  
  120.    operator new now throws exception 
  121.    
  122. *  MW00275 
  123.    Corrected handling of white spaces in istream  
  124.    
  125. *  MW00288  
  126.    Windows console applications now stop before exiting so that  
  127.    output can now be viewed  
  128.  
  129. *  MW00291 
  130.    MW00460 
  131.    MW00998 
  132.    Corrected problem of printing trailing zeros for float type    
  133.  
  134. *  MW00303 
  135. *  MW00311  
  136.    Corrected problem with printing signed infinity for %g  
  137.  
  138. *  MW00306 
  139.    Corrected problem with printing position of sign in combination  
  140.    with zero fill 
  141.  
  142. *  MW00334 
  143.    Fixes problem with failbit in getline 
  144.    
  145. *  MW00337 
  146.    MW00629 
  147.    Defined HUGE_VAL for win32 applications  
  148.  
  149. *  MW00346 
  150.    Fixed a null pointer dereference in basic_string  
  151.  
  152. *  MW00348
  153.    MW00441 
  154.    MW00452 
  155.    stat and localtime returned different values on Mac (due to 
  156.    difference in epochs 1900 and 1904).  Now stat and localtime 
  157.    calculate time based on unix epoch as specified by Posix  
  158.  
  159. *  MW00396 
  160.    Fixed a problem in calculating the number of blanks to replace 
  161.    a '\t' before writing to the console when it follows a '\n' in 
  162.    a long string 
  163.    
  164. *  MW00422 
  165.    MW01493 
  166.    Fixed problems in scanf to count input characters correctly 
  167.    even when assignment suppressed and to make sure non-matching 
  168.    character is left unread even when assignment is suppressed 
  169.    
  170. *  MW00441 
  171. *  MW00452 
  172.    MW00348 
  173.    stat and localtime returned different values on Mac (due to 
  174.    difference in epochs 1900 and 1904).  Now stat and localtime 
  175.    calculate time based on unix epoch as specified by Posix 
  176.  
  177. *  MW00460 
  178.    MW00998 
  179.    MW00291 
  180.    Corrected problem of printing trailing zeros for float type    
  181.  
  182. *  MW00478 
  183.    Fixed destructor and erase function for list 
  184.  
  185. *  MW00491 
  186.    Fixed typo in algorithm.h where parameters of find_first_of were  
  187.    typed in as ForwardIterator2 instead of ForwardIterator1  
  188.  
  189. *  MW00606 
  190.    Fixed typo in FSp-fopen.h from __path2fss__ to __FSp_fopen__  
  191.    
  192. *  MW00629  
  193.    MW00337
  194.    Defined HUGE_VAL for win32 applications  
  195.  
  196. *  MW00641 
  197. *  MW00670 
  198.    Fixed destructor in basic_streambuf which called delete twice 
  199.    and an additional problem that  attempts to read from memory 
  200.    that was deallocated 
  201.    
  202. *  MW00645 
  203.    MW01489  
  204.    Corrected implementation of print_integral_type in mlocale.h 
  205.  
  206. *  MW00703
  207.    Fixed relation operators with NAN operands - now returns false 
  208.    in all cases 
  209.  
  210. *  MW00763 
  211. *  MW00768 
  212.    MW01521 
  213.    MW01693 
  214.    Fixed a problem in fseek which occurred on files opened for r/w 
  215.    where a call to fseek did not cause the buffer to be reloaded 
  216.    between reads and writes 
  217.  
  218. *  MW00780 
  219.    MW00828 
  220.    MW01548
  221.    Explicit keyword now implemented in mcompile.h 
  222.    
  223. *  MW00782 
  224.    MW00196 
  225.    Fixed  __fileno link error on win32 
  226.    
  227. *  MW00787 
  228.    Fixed an error in order of includes in math.h  
  229.  
  230. *  MW00807 
  231.    Action of \r in SIOUX corrected to return current writing 
  232.    position to the beginning of the current line, erasing the 
  233.    reset of the line 
  234.  
  235. *  MW00809  
  236.    Made stderr properly unbuffered so that error messages are 
  237.    produced immediately  
  238.  
  239. *  MW00825 
  240.    <locale> needed to include the mcompile.h header   
  241.  
  242. *  MW00826 
  243.    Fixed a comparison of locale names with == operator 
  244.    
  245. *  MW00828 
  246.    MW00780 
  247.    MW01548
  248.    Explicit keyword now implemented in mcompile.h  
  249.    
  250. *  MW00838 
  251.    MW01075 
  252.    MW01446  
  253.    Fixed memory leak with ostringstream 
  254.    
  255. *  MW00850 
  256.    Fixed bugs in complex math functions pow
  257.    
  258. *  MW00851 
  259.    MW00200 
  260.    vector<T>::at now correctly throws out of range error   
  261.  
  262. *  MW00876  
  263.    sentry class lost first character on the stream if its high  
  264.    order bit was set 
  265.  
  266. *  MW00877 
  267.    Set errno for fopen (not part of Standard, but often requested) 
  268.    
  269. *  MW00998 
  270.    MW00291 
  271.    MW00460 
  272.    Corrected problem of printing trailing zeros for float type 
  273.    
  274. *  MW01075 
  275.    MW00838 
  276.    MW01446  
  277.    Fixed memory leak with ostringstream    
  278.  
  279. *  MW01232 
  280.    Fixed problem when using the L modifier 
  281.    
  282. *  MW01251 
  283.    Removed inlining of math intrinsics in C++ library 
  284.  
  285. *  MW01283 
  286.    MW01902 
  287.    Fixes %y modifier if year is 2000 or beyond (three digits) 
  288.    
  289. *  MW01294 
  290.    MW00172 
  291.    MW00203   
  292.    operator new now throws exception 
  293.    
  294. *  MW01298 
  295.    float.win32.c and float.mac.c have been replaced by float.c    
  296.    
  297. *  MW01380  
  298.    Fixed problem with complex division on win32 
  299.     
  300. *  MW01382  
  301.    Fixed num2dec in ansi_fp.c not using enough significant digits  
  302.    
  303. *  MW01400 
  304.    Fixes ostringstream buffer expansion error 
  305.  
  306. *  MW01446 
  307.    MW00838 
  308.    MW01075 
  309.    Fixed memory leak with ostringstream  
  310.  
  311. *  MW01489 
  312.    MW00645  
  313.    Corrected implementation of print_integral_type in mlocale.h 
  314.  
  315. *  MW01493 
  316.    MW0422 
  317.    Fixed problems in scanf to count input characters correctly 
  318.    even when assignment suppressed and to make sure non-matching 
  319.    character is left unread even when assignment is suppressed 
  320.  
  321. *  MW01521 
  322.    MW00763 
  323.    MW00768 
  324.    MW01693 
  325.    Fixed a problem in fseek which occured on files opened for r/w 
  326.    where a call to fseek did not cause the buffer to be reloaded 
  327.    between reads and writes 
  328.  
  329. *  MW01548 
  330.    MW00828 
  331.    MW00780 
  332.    Explicit keyword now implemented in mcompile.h 
  333.  
  334. *  MW01588  
  335.    Removed inlining of math functions in math.h  
  336.  
  337. *  MW01686
  338.    Fixed a problem with printf that inserted a spurious null byte in 
  339.    the output 
  340.  
  341. *  MW01693 
  342.    MW00763 
  343.    MW00768 
  344.    MW01521  
  345.    Fixed a problem in fseek which occured on files opened for r/w 
  346.    where a call to fseek did not cause the buffer to be reloaded 
  347.    between reads and writes 
  348.  
  349. *  MW01835 
  350.    Wrapped MSLPartialPrefix.h with "#ifdef __cplusplus" to alleviate  
  351.    need to activate the  C++ compiler for C projects using precompiled 
  352.    headers  
  353.    
  354. *  MW01891 
  355.    Fixed a problem with va_arg when first arg is only one character 
  356.    
  357. *  MW01902 
  358.    MW01283 
  359.    Fixes %y modifier if year is 2000 or beyond (three digits) 
  360.    
  361. *  MW02173 
  362.    unistd.mac.h should include ToolUtils.h instead of TextUtils.h to 
  363.    find GetString().  This was uncovered as a result of installing 
  364.    the new universal headers 
  365.  
  366.  
  367. ========================================================================
  368. Known Bugs and Incompatibilities
  369. ========================================================================
  370.  
  371. *  The namespace "std" is not implemented in this release of MSL.  It 
  372.    will be implemented in the next release.  If you try to turn on 
  373.    namespaces in this release, you will get lots of library errors.      
  374.  
  375. *  iterator_trait depends on a partial template specialization for 
  376.    pointer based iterator types.  Partial specializations are not 
  377.    supported by the compiler yet, so the __MSL_FIX_ITERATORS__ macro 
  378.    is still required for the iterator traits specializations:   
  379.    Example:  
  380.    
  381.        class example { }  
  382.        
  383.        __MSL_FIX_ITERATORS__ (example); 
  384.        __MSL_FIX_ITERATORS__ (const example); 
  385.        __MSL_FIX_ITERATORS__ (example *); 
  386.        __MSL_FIX_ITERATORS__ (example * const);  
  387.    
  388. *  The wchar.h and wctype.h headers have not yet been implemented. 
  389.    They will be available in the next release.   
  390.  
  391. *  This version of MSL will not work with previous versions (pre Pro2) 
  392.    of the universal headers on the Mac. 
  393.    
  394. *  DebugNew cannot be used with array allocations of new to 
  395.    validate that a pointer points to a valid, uncorrupted block, 
  396.    because the destructor does not deallocate the space properly. 
  397.    (Bug Reports: MW00172, MW00319, MW01291, MW01292) 
  398.    
  399. *  Known Bug Reports  (Please note that bug reports received since 
  400.    October 1, 1997, have not yet been verified, and hence, are not  
  401.    listed here):  
  402.  
  403.    MW00095  stdio.h bit field member file_kind is 2 bits, but the 
  404.             associated enum contains 5 values  
  405.    
  406.    MW00149  mlocale.h functions do_pos_format() and do_neg_format() 
  407.             call money_base::get_pat() instead of returning pattern 
  408.             defined in the functions  
  409.    
  410.    MW00156  ungetc on win32 operates differently than on the Mac  
  411.    
  412.    MW00294  fopen does note follow aliases correctly 
  413.    
  414.    MW00319  memory leak in ios_base::Init::init (iostream.cpp) 
  415.    
  416.    MW00346  memory leak in uninitialized_fill_n when exception is 
  417.             thrown 
  418.    
  419.    MW00427  including <valarray> more than once causes multiple 
  420.             defines  
  421.    
  422.    MW00445  problems seeking past EOF on Mac with lseek  
  423.    
  424.    MW00456  rename does not rename directories on Mac  
  425.    
  426.    MW00593  auto_ptr does not implement mutable keyword  
  427.    
  428.    MW00622  basic_streambuf<char T, traits>::sputbackc does not 
  429.             correctly call pbackfail  
  430.    
  431.    MW00656  MSL runtime project will not compiler under Require 
  432.             Function Prototypes due to missing headers  
  433.    
  434.    MW00767  basic_string [] operator does not return const_ref 
  435.    
  436.    MW00771  ifstream does not properly set failbit  
  437.    
  438.    MW00805  If vector allocation or copy fails, dangling pointers 
  439.             are left pointing to deallocated blocks of storage 
  440.    
  441.    MW00827  locale::facet should be declared explicit  
  442.    
  443.    MW00950  win32 reads doubles incorrectly if reading a file with 
  444.             unix end of line 
  445.             
  446.    MW01227  wchar not supported by library 
  447.    
  448.    MW01300  mode_t defined in both stat.win32.h and fcntl.win32.h 
  449.    
  450.    MW01321  problem with fseek and ftell on win32 platforms 
  451.    
  452.    MW01597  fcntl.win32.h open is redefined to _open, which causes 
  453.             problems with ofstream.open 
  454.    
  455.    
  456. ========================================================================
  457. Additional Notes
  458. ========================================================================
  459.  
  460. *  Compiling SGI's STL with Pro2: 
  461.    The current version of STI's STL may be imcompatible with the 2.0 
  462.    compiler.  A compatible version of SGI's STL will be available 
  463.    shortly at <http://www.metrowerks.com/tools/misc/hotlist.html> 
  464.  
  465. *  Precompiled header stationary sets precompiled headers to 4i-8d.  
  466.    When using precompiled headers built from the stationary, please 
  467.    ensure that the libraries you include in your project are also 4i-8d. 
  468.    If changing the precompiled headers preferences panels, please ensure 
  469.    that you build the associated libraries you plan to use with the same 
  470.    options.  A "#pragma check_header_flags" has been added to MSL.pch++ 
  471.    to help check for these types of errors. 
  472.    
  473. *  Build scripts for multi-target projects 
  474. #####  Vicki  #####  
  475.  
  476. *  Console applications for windows projects now stop before exiting so 
  477.    that output can be viewed.  This feature can be turned off by setting 
  478.    the preprocessor macro STOP_PROGRAM_BEFORE_EXIT in the windows 
  479.    prefix file, ansi_prefix.win32.h.  Be sure to rebuild MSL C after 
  480.    making this change.  Please note that if you redirect output to a 
  481.    serial device (such as a printer), you must still press enter to  
  482.    exit the program. 
  483.    
  484. *  There is a vbscript script in the "Metrowerks Standard Library" 
  485.    directory that rebuilds the precompiled header files, the win32 
  486.    runtime, and all MSL libraries.  Read the information at the top of 
  487.    the script file "msl_build.vbs" if you have problems running the 
  488.    script.  The file "msl_list" in the same directory can be configured 
  489.    to build exactly those libraries you wish to build.  If errors occur 
  490.    while building, they are logged in the file "error.log" in the 
  491.    "Metrowerks Standard Library" directory. 
  492.  
  493.  
  494. ========================================================================
  495. Contacting Metrowerks 
  496. ========================================================================
  497.  
  498. For bug reports, technical questions, and suggestions, please use the 
  499. forms in the Release Notes folder on the CD, and send them to 
  500.  
  501. support@metrowerks.com
  502.  
  503. See the CodeWarrior on the Nets document in the Release Notes folder for 
  504. more contact information, including a list of Internet newsgroups, 
  505. online services, and patch and update sites. 
  506.  
  507. ========================================================================
  508.  
  509.  
  510. Metrowerks Corporation